
#ifndef __gps_H
#define __gps_H

// standard ASCII symbols 
#define CR   0x0D
#define LF   0x0A
#define BS   0x08
#define ESC  0x1B
#define SP   0x20       
#define DEL  0x7F
#define TAB  0x09

//max length of GPS strings
#define MAX_GPSSTR_LEN 100 //number of chars in longest GPS string
#define GPS_TAG_LEN 6   // eg. "$GPRMC" = 6

//tags from GPS
#define TAG_GPGGA "$GPGGA"
#define TAG_GPRMC "$GPRMC"
#define TAG_GPGSA "$GPGSA"

//data types
#define GPS_NUM_TYPES 3
#define TYPE_GPGGA 0
#define TYPE_GPRMC 1
#define TYPE_GPGSA 2

//updates gps data from buffer




#include "gps.h"

//returns 1 if str1 == str2
unsigned char strCmp(char *str1, char *str2);

//updates gps data from buffer
void parseGpsData(void);

//buffer a char
void GPS_BufferData(char data);

//return last parsed gps string type
unsigned char GPS_LastParsedType(void);


unsigned char GPS_getUpdateFlag(void);

void GPS_setUpdateFlag(void);

char ** GPS_getDataPtr(void);

char ** GPS_BufferPtr(void);

#endif